#pragma once
#include "IModule.h"
#include "DispatchImpl.h"

class IModulesManager
{
public:
	virtual bool Init(const char *lpzInitName, const char *lpzInitScene) = 0;
	virtual void SwitchScene(const char *lpzScene) = 0;
	virtual void Destroy() = 0;
	virtual void Update(unsigned int uDeltaTick) = 0;
	virtual void Render() = 0;
	virtual IModule *GetModule(const char *lpzModuleName) = 0;
	virtual void SendEvent(int nEventID, Event_t &e, IModule *pFromModule, IModule *pToModule = NULL) = 0;
	virtual void PostEvent(int nEventID, Event_t &e, IModule *pFromModule, IModule *pToModule = NULL) = 0;
};
